<?php
namespace app\clerk\model;
use app\common\model\Table as TableModel;
use think\Db;

/**
 * 餐桌/包间模型
 */
class Table extends TableModel
{
    /**
     * 新增记录
     */
    public function add($data)
    {
		$data['wxapp_id'] = self::$wxapp_id;
        // 开启事务
        Db::startTrans();
        try {
            // 添加
            $this->allowField(true)->save($data);
			//生成餐桌二维码
			if(!$this->qrCode($this->table_id)){
				return false;
			}
            Db::commit();
            return true;
        } catch (\Exception $e) {
            Db::rollback();
        }
        return false;
    }

    /**
     * 更新记录
     */
    public function edit($data)
    {
        return $this->allowField(true)->save($data) !== false;
    }

    /**
     * 删除记录
     */
    public function remove() {
        return $this->delete();
    }
	
	/**
     * 生成二维码
     */
	private function qrCode($table_id)
	{
		$result = getAccessToken();
		if($result['errcode']!=0){
			$this->error = '获取AccessToken错误，code：'.$result['errcode'].'，msg:'.$result['errmsg'];
			return false;
		}
		$url = 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='.$result['access_token'];
		$data = '{"scene":"'.$table_id.'"}';
		$result = http_request($url,$data);
		if(isset($result['errcode']) AND $result['errcode']!=0){
			$this->error = '生成餐桌小程序码错误，code：'.$result['errcode'].'，msg:'.$result['errmsg'];
			return false;
		}
		file_put_contents('assets/qrcode/table/'.$table_id.'.png',$result); //获取的二维码数据存储到指定的文件
		return true;
	}

}
